#ifndef _KC_POSITION__H_KC_
#define _KC_POSITION__H_KC_

#include <iostream>
 
namespace kc_sf
{
	struct Position
	{
		unsigned int pBytes;	// ilość bajtów od początku strumienia
		unsigned int pLine;		// numer linii
		unsigned int pColumn;	// ilość znaków od początku linii

		bool pDefined;			// pomocnicza flaga do określenia czy świadomie skorzystano z bezparametrowego konstruktora

		explicit Position( int defined = false )
		{
			pLine = pColumn = pBytes = 0;
			pDefined = defined;
		}

		Position( unsigned int bytes,
				  unsigned int line,
				  unsigned int column )
		{
			pBytes = bytes;
			pLine = line;
			pColumn = column;
			pDefined = true;
		}
	};
}

#endif // _KC_POSITION__H_KC_
